package com.oms.app.shop.dao;

import java.util.List;
import java.util.Map;

import com.oms.app.shop.model.Shop;
import com.oms.app.shop.model.ShopMy;
import com.oms.core.dao.IGeneralDAO;
import com.oms.core.model.Query;

/**
 * @author Loong_Mit
 * @date Sep 1, 2012 6:31:35 PM
 */

public interface IShopDAO extends IGeneralDAO<Shop, String> {
	/**
	 * wtj 2012年6月9日20:03:55 
	 * 获取商家列表
	 * @param query
	 * @return
	 * @throws Exception
	 */
	 List<Shop> getShopList(Query query);
	 
	 /**
	  * 获取我申请的商家列表
	  * @param creator
	  * @return
	  * Administrator
	  */
	 List<Shop> getMyApplyList(String creator);
	 
	 boolean addShop(Shop shopForm);
	 
	 boolean updateShop(Shop shopForm);
	 
	 boolean deleteShop(String PK);
	 
	 boolean isOrderFood(String PK);
	 
	 boolean changeShopStatus(String PK, String status);
	 /**
	  * 获取系统内 商家列表
	  * @param m
	  * @return
	  */
	 List<Map<String, Object>> getShopList(Map<String, Object> m);
	 /**
	  * 获取我已经申请的商家
	  * @param m
	  * @return
	  */
	 List<Map<String, Object>>  getMyShopList(Map<String, Object> m);
	 
	 /**
	  * 获取我的订单列表
	  * @param map
	  * @return
	  * Administrator
	  */
	 List<Map<String, Object>> getMyOrderList(Map<String, Object> map);
	 
	 /**
	  * 获得某个商家的某个用户的订单详细列表
	  * @param map
	  * @return
	  * Administrator
	  */
	 List<Map<String, Object>> getMyOrderDetailList(Map<String, Object> map);
	 
	 /**
	  * 改变某个订单详细信息的状态
	  * @param key
	  * @param status
	  * @return
	  * Administrator
	  */
	 boolean changeOrderDetailStatus(String key, String status);
	 
	 /**
	  * 删除某个订单的订单详细信息
	  * @param keyIds
	  * @return
	  * Administrator
	  */
	 boolean deleteOrderDetails(String keyIds);
	 /**
	  * 申请我的商家
	  * @param map
	  * @return
	  */
	 boolean saveApplyShop(ShopMy shopMy);
	 /**
	  * 店铺管理 获取申请店铺的用户
	  * @param shopid
	  * @return
	  */
	 List<Map<String, Object>> getApplyUserList(String shopid);
	 
	 /**
	  * 是否已存在用户申请的商家 检查用户与商家关系是否已存在
	  * @param shopId
	  * @param usId
	  * @return
	  */
	 boolean isAppliedShop(Long shopId, Long usId);
}
